9 research outputs found

    A hybrid approach combining control theory and AI for engineering self-adaptive systems

    Get PDF
    Control theoretical techniques have been successfully adopted as methods for self-adaptive systems design to provide formal guarantees about the effectiveness and robustness of adaptation mechanisms. However, the computational effort to obtain guarantees poses severe constraints when it comes to dynamic adaptation. In order to solve these limitations, in this paper, we propose a hybrid approach combining software engineering, control theory, and AI to design for software self-adaptation. Our solution proposes a hierarchical and dynamic system manager with performance tuning. Due to the gap between high-level requirements specification and the internal knob behavior of the managed system, a hierarchically composed components architecture seek the separation of concerns towards a dynamic solution. Therefore, a two-layered adaptive manager was designed to satisfy the software requirements with parameters optimization through regression analysis and evolutionary meta-heuristic. The optimization relies on the collection and processing of performance, effectiveness, and robustness metrics w.r.t control theoretical metrics at the offline and online stages. We evaluate our work with a prototype of the Body Sensor Network (BSN) in the healthcare domain, which is largely used as a demonstrator by the community. The BSN was implemented under the Robot Operating System (ROS) architecture, and concerns about the system dependability are taken as adaptation goals. Our results reinforce the necessity of performing well on such a safety-critical domain and contribute with substantial evidence on how hybrid approaches that combine control and AI-based techniques for engineering self-adaptive systems can provide effective adaptation

    Dohko: an autonomic system for provision, configuration, and management of inter-cloud environments based on a software product line engineering method

    No full text
    International audienceConfiguring and executing applications across multiple clouds is a challenging task due to the various terminologies used by the cloud providers. Therefore, we advocate the use of autonomic systems to do this work automatically. Thus, in this paper, we propose and evaluate Dohko, an autonomic and goal-oriented system for inter-cloud environments. Dohko implements self-configuration, self-healing, and context-awareness properties. Likewise, it relies on a hierarchical P2P overlay (a) to manage the virtual machines running on the clouds and (b) to deal with inter-cloud communication. Furthermore, it depends on a software product line engineering method to enable applications’ deployment and reconfiguration, without requiring pre-configured virtual machine images. Experimental results show that Dohko can free the users from the duty of executing non-native cloud application on single and over many clouds. In particular, it tackles the lack of middleware prototypes that can support different scenarios when using simultaneous services from multiple clouds

    Autonomic Provisioning, Configuration, and Management of Inter-Cloud Environments based on a Software Product Line Engineering Method

    No full text
    International audienceConfiguring and executing application across multiple clouds is a challenging task due to the various terminologies used by cloud providers to describe their services and features. Likewise, the services are regularly offered at different levels of abstraction, such as infrastructure-as-a-service (IaaS) and platform-as-a-service (PaaS). While IaaS services provide low-level access to the infrastructure, PaaS services enable the users to delegate the management of the computing environment to the cloud providers. Consequently, at the IaaS level, the users are responsible for managing the computing resources, whereas, at the PaaS level, the users must develop native cloud applications following the constraints defined by the PaaS provider. These two options exist, mostly because the clouds target web applications, whereas users' applications are commonly batch-oriented. Considering how difficult is the task of configuring and executing applications across various clouds, we advocate the use of autonomic systems to do this work automatically. For this purpose, in this paper, we propose and evaluate an autonomic and goal-oriented system. Our system implements self-configuration, self-healing, and context-awareness properties. In addition, it relies on a hierarchical P2P overlay (a) to manage the virtual machines running on the clouds and (b) to deal with inter-cloud communication. Likewise, it depends on a software product line engineering (SPLE) method to enable applications' deployment and reconfiguration at runtime, without requiring pre-configured virtual machine images. Experimental results show that our system frees the users from the duty of configuring and managing the execution of a non-native application on single clouds and over many clouds. In particular, our system tackles the lack of middleware prototypes that can support different scenarios when using simultaneous services from multiple clouds

    Automating Resource Selection and Configuration in Inter-clouds through a Software Product Line Method

    No full text
    International audienceNowadays, cloud users face three important problems: (a) choosing one or more appropriate cloud provider(s) to run their application(s), (b) selecting appropriate cloud resources, which implies having enough information about the available resources, including their characteristics and constraints, and (c) configuring the cloud resources. These problems are mostly due to the wide range of resources. These resources usually have distinct dependencies, and they are offered at various clouds' layers. In this complex scenario, the users often have to handle cloud resources and their dependencies manually. This is an error-prone and time-consuming activity, even for skilled cloud users and system administrators. In this context, this paper proposes a software product line engineering (SPLE) method and a tool to deal with these issues. Our SPL-based engineering method enables a declarative and goal-oriented strategy. Furthermore, it allows resource selection and configuration in inter-cloud environments. In our proposal, the cloud users specify their applications and requirements, and our tool automatically selects and configures a suitable computing environment, taking into account temporal and functional dependencies. Experimental results on Amazon EC2 and Google Compute Engine (GCE) show that our approach enables unskilled users to have access to advanced inter-cloud computing configurations, without being concerned with the characteristics of each cloud
    corecore